查看原文
其他

Points of Significance: multiple-testing correction

Points of Significance: multiple-testing correction

简介


Nature methods从2013年9月开始发表月刊Points of Significance系列,该系列主要介绍统计在生物学中的应用,让读者可以更正确的理解及使用统计。有研究发现,在医学类期刊上发表的文章中,有接近半数的统计方法的使用都是不正确的,所以Nature methods推出该系列统计文章,以实用易懂的方式来介绍统计中的一些基本概念。


知识点

1.Bonferroni多重检验校正方法

2.Holm多重检验校正方法

3.BH多重检验校正方法

4.Storey多重检验校正方法

5.P值的分布为什么是均匀分布?


主要内容

        大家还记得为什么p值小于0.05的时候就被认为显著吗?对的,因为我们将可以容忍的第一类错误alpha设定在了0.05,所以当我们的p值小于0.05时,我们就认为是显著的。假如我们给小鼠吃药,我们想看吃完药之后小鼠的基因表达是否有显著变化。那么我们是可以用t检验来做的,如果设定alpha的值为0.05,那么很显然,假如我们所有的N个基因都没有显著变化,那么根据p值的定义,我们也会有0.05N个基因被认为是有显著变化的。例如,如果有10000个基因被检验,那么将会有500个基因被错误的认为有变化。

下面我们来看个例子


        如上图a所示,左边一列是小鼠吃药前各个基因的表达,右边一列是吃药后小鼠各个基因的表达,吃药后的表达有一定比例的基因会有显著变化。

        如上图b左边的图所示,假如图a右边一列基因表达有10%的基因收到影响,在总共有10000个基因的情况下,且检验效应为80%,alpha为0.05时,将会有1250个基因会被检验出来p值小于0.05。

        简单说一下为什么是1250个基因,假设了10%的基因收到影响,也就是说真实情况1000个基因有显著变化,另外9000个没有显著变化。在检验效应为80%时,1000个显著变化的基因中有80%也就是800个基因被认为有显著变化。又由于alpha为0.05,也就是说,9000个没有变化的基因中会有5%也就是450个基因被错误的认为有显著变化。800加上450是1250,所以共有1250个基因被认为有显著变化。在这种条件下,检测出来的1250个基因中有大约三分之一都是错的。

同样的,

        如图b右边的图所示,当条件和左边的图都相同,但是有显著变化的基因有50%,此时该计算将会检测会4250个基因会被认为有显著变化,4000个是正确的,250个是错误的,错误率此时只有十七分之一。

        其实,当受到实验条件影响,有显著变化的基因比例越小,检测出来的错误率就越高。比如若10000个基因中只有1%是真实有显著变化的。此时的错误率将达到大约七分之六,计算方式和刚才相同,感兴趣的同学可以自行计算一下。


多重检验校正常用方法

        上面说了这么多,无非就是想说,如果我们统计检验的次数多了,会有很高的错误率,特别是当受影响的基因比例很小的时候。那么该怎么办呢?没错,这就是今天我们的主题,多重检验校正。下面我们介绍几种比较基本和常用的多重检验校正的方法。

1.Bonferroni多重检验校正

        Bonferroni多重检验校正的主要思想是,保证检验出来的有显著变化的数量小于1。具体操作是,对于多重检验求出来的所有p值,都乘以检验次数。刚才的例子中,若10000个基因被检验,某个基因检验出来p值为0.00001,用Bonferroni多重检验校正将其乘以10000变为0.1,然后再跟0.05比,若比0.05小则显著,比0.05大则不显著。

        Bonferroni多重检验校正太强了,若是我们采用10个基因来进行比对,本来单个基因的检验效应为80%,Bonferroni检验校正后,检验效应只有大约33%。若是采用100个基因进行多重检验校正,那么效应效应降低为大约只有8%,若使用10000个基因的话,那检验效应就只有0.2%。这是什么概念,就是说,如果10000个基因有10%也就是1000个基因有显著变化的话,在0.2%的检验效应的条件下,只有2个基因会被认为是显著的。1000个真实有变化的基因只有2个基因能够被检验出来的检验方法可用吗?


2.Holm多重检验校正

        为了降低Bonferroni检验校正的强度,可以使用Holm多重检验校正。Holm多重检验校正操作方式如下:假如检验次数为N,首先对所有检验结果的p值进行排序,从小到大排序。然后对第一个值p值乘以N进行校正,对第二个p值乘以N-1进行校正,对第三个p值乘以N-2进行校正,以此类推。若再校正后p值大于1则将p值设定为1。

        Holm多重检验校正显然是Bonferroni检验校正的一种弱化。


3.BH多重检验校正

        BH多重检验校正的强度比Holm的强度还弱,具体操作如下。假如检验次数为N,首先对所有检验结果的p值进行排序,从小到大排序。然后对第一个值p值不变,对第二个p值乘以N再除以N-1进行校正,对第三个p值乘以N再除以N-2进行校正,以此类推。若再校正后p值大于1则将p值设定为1。

        从计算方式中我们也能看出来该检验校正比Holm弱。


4.Storey多重检验校正

        在说Storey多重检验校正之前,我们首先要理解p值的分布。假如我们所有基因都是从吃药前的小鼠来的,那么根据p值的定义,若是某次抽样抽到x,那么p值大小为该分布下x右边的面积。然后我们想想概率分布的密度函数是什么?假如有了一个密度分布,当从中取值小于等于x时的概率为多少?我们概率论中学密度函数的时候学过,就是该分布x左边的面积。那么我们来看,p值的分布该是怎么样,当p等于0.05时,在p值的密度分布中,0.05左边对应着p值小于0.05,p值小于0.05的概率在抽样分布中就是0.05。所以综上可以知道,在p值的密度分布中,0.05左边的面积是0.05,0.1左边的面积是0.1等等。这也就是说p值的分布是一个均匀分布。(不知道有没有讲清楚)。

 

        好了,既然在都没有显著变化的时候p值的分布应该是一个均匀分布。那么显然,若是存在显著变化的基因,p值小于0.05的数量会增加,那么p值的分布就会变化成p值小的部分很高,如下图所示。


        上图a中上下两排分别是受影响的基因占10%和50%时p值的分布。如上图b所示,若是我们直接去小于0.05的为显著,我们错误率会很高,红色部分都是错误的。

 

        Storey多重检验校正是估计没有变化的样本数量来进行校正的。如上图c所示,在右边分布竖直取一个值lambda=05, 然后计算0.5右边p值的数量M。然后就认为2M为没有收到影响的基因的数量。那么就认为只有前N-2M个p值是显著的。


多重检验校正性能比较

        上面介绍了四种常用的多重检验校正方法,那么他们的效应怎么呢。

        如上图所示,分别展示的是10%的基因有显著变化(左边)和50%的基因有显著变化(右边)在总基因数N在不同取值时的情况。两个图中分别展示了不做校正,Bonferroni校正,BH校正和Storey校正情况下的检验效应(蓝色),FPR假阳率(粉色)和FDR错误率(棕色)。

        总体来说,可以发现,检验校正强度Bonferroni最小,BH次之,Storey最小。


系列索引

1. Points of Significance: Importance of being uncertain

2. Points of Significance: Error bars

3. Points of Significance: Significance, P values and t-tests

4. Points of Significance: Power and sample size

5. Points of Significance: Visualizing samples with box plots

6. Points of Significance: Comparing samples part I

扫描或者识别文末的二维码关注NGSHotpot公众号,查看该系列上述文章。


参考文献

1. Krzywinski, M., and Altman, N. (2014). Points of significance: Comparing samples—part II. Nature methods 11, 355-356.

声明:上述内容为NGSHotpot读文献整理写出,若有遗漏或错误,感谢您指出。

若有任何意见、建议、或对上述内容有疑问请发送邮件到:ngshotpot@126.com

扫描或识别下方二维码关注NGSHotpot

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存